package com.exam.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.exam.vo.AnswerVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/** 模块-页面：题库管理-所有题库
 * 根据数据库中三种题型对应的三张表 multi_question、fill_question、judge_question 选取其中的共同字段进行联合查询，
   组装成一个AnswerVO模型，一个AnswerVO对象可能是三种题型（选择、判断、填空）中的其中之一。
 */
@Mapper
public interface AnswerMapper {

    /** 多表联查 + 分页查询
     * 从multi_question中查到的就设其type为选择题，从judge_question表中查到的设type为判断题，从fill_question表中查到的设type为填空题。分别展示到页面的“题目类型”中。
     * 每种type对应的题型，直接在数据库中查询相应的实体表格，展示AnswerVO模型需要的其他所有字段到页面中。
     * @param page
     * @return
     */
    @Select("select question, subject, score, section,level, \"选择题\" as type from multi_question " +
            "union select  question, subject, score, section,level, \"判断题\" as type  from judge_question " +
            "union select  question, subject, score, section,level, \"填空题\" as type from fill_question")
    IPage<AnswerVO> findAll(Page page);
}
